#pragma once

#include <vector>
#include <glm\glm.hpp>


class Algoritmo2D {
public:
	virtual ~Algoritmo2D() { }

	// Construye la malla de puntos de control para la superficie
	virtual void addCurvaControl( std::vector< glm::vec3 > vecVectices ) = 0;

	// Evalua los puntos usando el algoritmo
	virtual glm::vec3 eval(float u, float v) const = 0;

	// Para la parametrizacion de la superficie
	virtual float getLimiteSuperior() const = 0;
	virtual float getLimiteInferior() const = 0;
};

